from typing import Optional
from keras.models import load_model
from logging import getLogger

logger = getLogger('pet_ai')

def domain_classifier(text: str) -> bool:
    """使用领域专用BERT模型进行预测"""
    try:
        model = load_model('pet_domain_bert.h5')
        prob = model.predict([text])[0]
        return prob > 0.95  # 置信度阈值控制
    except:
        # 如果模型文件不存在，默认所有输入都是宠物领域
        return True

async def handle_query(user_input: str) -> Optional[str]:
    """处理用户查询，进行领域判断"""
    if not domain_classifier(user_input):
        toys = get_random_toys(2)
        logger.info(f"非宠物领域查询：{user_input}，推荐玩具：{toys}")
        return f"暂不提供非宠物行业知识，推荐宠物玩具：{toys[0]}、{toys[1]}"
    
    logger.info(f"处理宠物领域查询：{user_input}")
    # 继续处理宠物相关请求...
    return None
